package edu.pe.cayetano.wsusuario;

import ws.synopsis.frmwrk.common.BResult;
import edu.pe.cayetano.wsusuario.bo.UsuarioBO;
import edu.pe.cayetano.wsusuario.to.WSCabeceraUsuarioTO;
import edu.pe.cayetano.wsusuario.to.WSDatosListaUsuarioTO;
import edu.pe.cayetano.wsusuario.to.WSDatosUsuarioTO;
import edu.pe.cayetano.wsusuario.to.WSRespuestaListaUsuarioTO;
import edu.pe.cayetano.wsusuario.to.WSRespuestaUsuarioTO;
import edu.pe.cayetano.wsusuario.to.WSUsuarioTO;

public class WSUsuario {

	/**
	 * Metodo para obtener los datos de un usuario dado su username
	 * */
	public WSRespuestaUsuarioTO getUsuario(WSCabeceraUsuarioTO cabeceraTO){
		UsuarioBO 					usuarioBO 			= new UsuarioBO();
		BResult						retUsuario 			= null;
		WSRespuestaUsuarioTO		respuestaUsuarioTO 	= new WSRespuestaUsuarioTO();
		WSDatosUsuarioTO 			datos 				= null;
		try {
			retUsuario = usuarioBO.getUsuario(cabeceraTO);
			if(retUsuario.getObject()!=null){
				if(retUsuario.getCode()==0 || retUsuario.getCode()==-3){
					datos 			= new WSDatosUsuarioTO();
					datos.setUsuarioTO((WSUsuarioTO)retUsuario.getObject());
					respuestaUsuarioTO.setDatos(datos);
				}
			}
			respuestaUsuarioTO.setCodigoRespuesta(String.valueOf(retUsuario.getCode()));
			respuestaUsuarioTO.setMensajeRespuesta(retUsuario.getMessage());
		
		} catch (Exception e) {
			System.out.println("[WSUsuario][WSUsuario][getUsuario] error generado por:"+e.getMessage());
			respuestaUsuarioTO.setCodigoRespuesta(String.valueOf(retUsuario.getCode()));
			respuestaUsuarioTO.setMensajeRespuesta(retUsuario.getMessage());
		}
		return respuestaUsuarioTO;
	}

	/**
	 * Metodo para obtener el listado de todos los usuarios
	 * */
	public WSRespuestaListaUsuarioTO getListaUsuario(){

		UsuarioBO 					usuarioBO 		= new UsuarioBO();
		BResult						retUsuario 		= null;
		WSRespuestaListaUsuarioTO	listaUsuario 	= new WSRespuestaListaUsuarioTO();
		WSDatosListaUsuarioTO 		datos 			= null;
		try {
			retUsuario = usuarioBO.getListaUsuario();
			if(retUsuario.getCode()==0 && retUsuario.getObject()!=null){
				datos 			= new WSDatosListaUsuarioTO();
				datos.setListaUsuario((WSUsuarioTO[])retUsuario.getObject());
				listaUsuario.setDatos(datos);
			}
			listaUsuario.setCodigoRespuesta(String.valueOf(retUsuario.getCode()));
			listaUsuario.setMensajeRespuesta(retUsuario.getMessage());
		} catch (Exception e) {
			System.out.println("[WSUsuario][WSUsuario][getListaUsuario] error generado por:"+e.getMessage());
		}
		return listaUsuario;
	}

	/**
	 * Metodo para obtener el listado de todos los usuarios segun un campo y un criterio de busqueda
	 * */
	public WSRespuestaListaUsuarioTO findUsuario(WSCabeceraUsuarioTO cabeceraTO){

		UsuarioBO 					usuarioBO 		= new UsuarioBO();
		BResult						retUsuario 		= null;
		WSRespuestaListaUsuarioTO	listaUsuario 	= new WSRespuestaListaUsuarioTO();
		WSDatosListaUsuarioTO 		datos 			= null;
		try {
			retUsuario = usuarioBO.findUsuario(cabeceraTO);
			if(retUsuario.getCode()==0 && retUsuario.getObject()!=null){
				datos 			= new WSDatosListaUsuarioTO();
				datos.setListaUsuario((WSUsuarioTO[])retUsuario.getObject());
				listaUsuario.setDatos(datos);
			}
			listaUsuario.setCodigoRespuesta(String.valueOf(retUsuario.getCode()));
			listaUsuario.setMensajeRespuesta(retUsuario.getMessage());
		} catch (Exception e) {
			System.out.println("[WSUsuario][WSUsuario][findUsuario] error generado por:"+e.getMessage());
		}
		return listaUsuario;
	}
	

}
